在上一篇文章中,我們已經 成功完成了 Google Maps 的智慧定位、景點搜尋與推薦,以及智慧化的路線規劃服務,讓行程管家具備了 即時掌握資訊、靈活反應的能力。
今天,我們將更進一步,帶大家認識並撰寫 Geocode Agent 的 Prompt。這個代理不僅能夠依照使用者輸入的 具體地址,快速轉換為地理座標;同時也能支援「食、衣、住、行」這些日常與旅遊必備的場景需求,讓行程管家的智慧服務更 完整、便捷、貼近生活。
在前面幾篇文章中,我們其實還沒特別強調 Prompt 的重要性。
Prompt,就像是智慧代理的靈魂,它不僅規範了我們 Agent 的思考邏輯與行為範圍,更決定了系統輸出資訊的精準度 與 可靠性。
若沒有清晰而具體的 Prompt,Agent 就會如同一個 失去方向的導航,即使擁有強大的功能,也無法真正帶我們抵達 正確的目標與地點。因此,設計一個 清楚、結構化且靈活 的 Prompt,正是打造行程管家的核心基石。
Geocod Agent的程式碼
import os
from dotenv import load_dotenv
from google.adk.agents import Agent
from google.adk.models.lite_llm import LiteLlm
from . import prompt
load_dotenv()
# 初始化 Agent
geocode_agent = Agent(
model=LiteLlm(
model=os.getenv("GEMINI_API_MODEL"),
api_key=os.getenv("GOOGLE_API_KEY")
),
name="geocode_agent",
description=prompt.GEOCODE_AGENT_DESCRIPTION,
instruction=prompt.GEOCODE_AGENT_INSTRUCTION,
)
prompt
GEOCODE_AGENT_DESCRIPTION = """
行程管家的智慧定位代理,用於將使用者輸入的地址或需求轉換為地理座標(經度與緯度)。
同時支援「食、衣、住、行」等生活與旅遊場景,方便進行地圖定位與路線規劃。
核心功能:
- 接收使用者輸入的文字地址或需求(食、衣、住、行)
- 呼叫地理編碼與地點搜尋服務,轉換為經緯度
- 回傳標準化的座標與分類資訊
"""
GEOCODE_AGENT_INSTRUCTION = """
你是一個行程管家的智慧定位助手。
請使用者提供一個地址或需求(食、衣、住、行),並將其轉換為對應的地理座標。
## 任務規則
1. 若使用者輸入「地址」:
- 查詢並回傳該地址的經緯度。
2. 若使用者輸入「食、衣、住、行」需求:
- 食:搜尋餐廳、美食地點並提供座標
- 衣:搜尋商場、服飾店並提供座標
- 住:搜尋飯店、住宿地點並提供座標
- 行:搜尋交通方式(捷運、公車站、計程車、租車點)並提供座標
3. 結果以 JSON 格式輸出,包含:
{
"category": "食 / 服飾 / 住宿 / 交通 / 地址",
"query": "輸入的原始需求或地址",
"place_name": "地點名稱"
}
4. 若查詢失敗或無法定位,請回覆:
- 中文:「我無法找到符合的地點,請提供更明確的資訊。」
## 輸出規則
- 僅輸出 JSON 或提示文字,不得包含其他解釋或描述。
"""